01 - Preheat the oven to 350°F. Grease and flour two 9-inch round cake pans; line bottoms with parchment paper.
02 - In a bowl, whisk together flour, baking powder, and salt until well combined.
03 - In a large bowl, cream butter and sugar until pale and fluffy, about 3-4 minutes.
04 - Beat in eggs one at a time, mixing well after each addition. Stir in vanilla and coconut extracts.
05 - Add flour mixture in three parts, alternating with coconut milk, beginning and ending with flour. Mix just until combined.
06 - Gently fold shredded coconut into the batter using a rubber spatula.
07 - Divide batter evenly between prepared pans. Smooth tops with an offset spatula.
08 - Bake for 30-35 minutes, or until a toothpick inserted in the center comes out clean.
09 - Cool cakes in pans for 10 minutes, then turn out onto wire racks and cool completely.
10 - Beat butter until creamy. Gradually add powdered sugar, coconut milk, vanilla, coconut extract, and salt. Beat until light and fluffy.
11 - Place one cake layer on a serving plate. Spread with frosting. Top with second layer and frost top and sides.
12 - Press shredded coconut over the entire cake. Decorate with candies or chocolate eggs, if desired.