Step 1
Preheat the oven to 350 degrees F (175 degrees C). Grease and flour three 9-inch cake pans.
Step 2
Beat butter and margarine together using an electric mixer in a bowl until creamy. Add sugar gradually beating until light and fluffy.
Step 3
Sift flour baking powder and salt together in a separate bowl.
Step 4
Add eggs one at a time to creamed mixture beating well after each addition. Add flour mixture alternately with coconut milk and vanilla extract beating after each addition until smooth. Pour about 2 1/3 cups batter into each prepared cake pan.
Step 5
Bake in the preheated oven until a toothpick inserted into the center of the cakes comes out clean 25 to 30 minutes. Let cake layers cool in pans for 10 minutes before transferring to wire racks to cool completely about 30 minutes more.
Step 6
Stir sour cream sugar coconut and milk together in a bowl until filling is well blended.
Step 7
Remove one cake layer from the pan and invert onto a cake plate. Poke holes approximately 1-inch apart using the end of a wooden spoon until entire cake has been poked. Spread 1/3 of the filling on the cake layer. Top with second layer; repeat process. Top with last layer and repeat process again.
Step 8
Combine sugar and egg whites in the top of a double boiler. Heat the pot over boiling water stirring with a wire whisk until all sugar has dissolved about 5 minutes. Remove from heat.
Step 9
Transfer sugar mixture to the bowl of an electric stand mixer and beat using the wire attachment until soft peaks form. Switch to the paddle attachment. Pour in vanilla extract and salt. Beat in butter 1 tablespoon at a time until fully incorporated. Beat until meringue reaches a thick buttercream consistency. Spread onto cake. Decorate with coconut as desired.