Preheat oven to 350F. Grease and flour three 6" cake rounds and line with parchment.
In a medium bowl, whisk flour, baking powder, and salt until well combined. Set aside.
Using a stand mixer fitted with a paddle attachment, cream butter and sugar on med-high until pale and fluffy (approx 3mins). Reduce speed and add eggs one at a time fully incorporating after each addition. Add vanilla.
Alternate adding flour mixture and coconut milk, beginning and ending with flour (3 additions of flour and 2 of milk). Fully incorporating after each addition.
Gently fold in shredded coconut.
Bake for 35-40mins or until a toothpick inserted into the center comes out mostly clean.
Place cakes on wire rack to cool for 10mins then turn out onto wire rack.
Coconut Swiss Meringue Buttercream:
Place egg whites and sugar into the bowl of a stand mixer, whisk until combined.*
Place bowl over a double boiler on the stove and whisk constantly until the mixture is hot and no longer grainy to the touch (approx. 3mins). Or registers 160F on a candy thermometer.
Place bowl on your stand mixer and whisk on med-high until the meringue is stiff and cooled (the bowl is no longer warm to the touch (approx. 5-10mins)).
Switch to paddle attachment. Slowly add cubed butter and mix until smooth.**
Add coconut milk powder and whip until smooth.
Place one layer of cake on a cake stand or serving plate. Top with approximately 2/3 cup of buttercream. Repeat with remaining layer and crumb coat the cake. Chill for 20mins.
Frost the top and sides of the cake and smooth with a bench scraper. Do a swirl on the top.
Gently press toasted coconut flakes into the sides of the cake.
* Ensure there is NO trace of egg yolks in your whites and that your mixer bowl and whisk is completely grease free or your meringue won't stiffen. ** The buttercream may look like it's curdled at some point. Keep mixing until it is completely smooth.