Preheat your oven to 350 F (177 C) and grease and flour three 8-inch cake pans.
In a large mixing bowl, cream together the softened butter and sugar until light and fluffy.
Add eggs one at a time, beating well after each addition.
In a separate bowl, sift together the cake flour, baking powder, and salt.
Gradually add the dry ingredients to the butter mixture, alternating with coconut milk. Begin and end with the dry ingredients.
Stir in the coconut extract and fold in the shredded coconut.
Divide the batter evenly among the prepared pans and smooth the tops.
Bake for 25-30 minutes or until a toothpick inserted into the center comes out clean.
While the cakes are cooling, prepare the frosting by beating together the softened butter, powdered sugar, coconut milk, and coconut extract until smooth and creamy.
Once the cakes are completely cooled, frost each layer with the coconut frosting, and then cover the entire cake with the remaining frosting.
Garnish the cake with toasted shredded coconut for a finishing touch.