Preheat oven to 350°.
Grease and flour 4 (7-inch) round cake pans. Line bottoms with parchment.
In a large bowl, beat butter and sugar with a mixer at medium speed until light and fluffy, 3 to 4 minutes.
Add eggs, one at a time, beating well after each addition.
In a medium bowl, stir together dry ingredients.
Gradually add flour mixture to butter mixture alternately with milk, beginning and ending with flour mixture, beating just until combined after each addition.
Add in the vanilla and coconut extract.
Mix well to combine.
Pour batter into prepared pans.
Bake until a wooden pick inserted in center comes out clean, 30 to 34 minutes.
Let cool completely.
In medium sauce pan add the egg whites and sugar.
On medium heat you are going to whisk egg mixture until sugar is completely dissolved (you can test it by rubbing a small amount between your fingers to test it, it should be completely smooth).
Remove from heat and let mixture cool. (If mixture is too warm it will melt your butter when the time comes).
Transfer to mixing bowl and with whisk attachment whisk on high until stiff peaks form and mixture is completely cooled.
Switch to paddle attachment.
On low speed add the butter one piece at a time.
Increase mixer to medium/high speed and mix until buttercream forms.
Add in the vanilla, continue mixing until completely mixed in.
With mixer on low speed pour in the caramel sauce and add in the toasted coconut. (I used Bob Redmill Fine Coconut)
Mix until completely combined.
Cut tops of cakes if hump formed while baking.
Place first cake layer on cake board, secure it in place with a dab of frosting underneath.
Spread even layer of butter cream on top of the cake layer, smooth with offset spatula.
Repeat with the next two cake layers.
Add the top cake layer and crumb coat the cake with buttercream.
Refrigerate at least 30 minutes.
Put final coating of buttercream on cake. Refrigerate 30 minutes minimum.
Decorate as desired.