Preheat oven to 275°F. Cut parchment paper into circles to fit each pan. Grease the pans (and parchment paper) with cooking spray or butter, and then lightly dust with flour.
In a large bowl, combine the flour, 1¼ cups sugar, salt, baking soda, and baking powder. Set aside.
In the bowl of a stand mixer fitted with whisk attachment, whisk together buttermilk, yolks, oil, and both extracts. With the mixer running on low, slowly add in the melted butter.
Switch the whisk attachment to the paddle attachment and gradually add the dry ingredients into the butter mixture and mix on low until combined. Set aside.
In a large bowl, whisk egg whites (preferably with an electric hand mixer), slowly incorporating the remaining ¼ cup granulated sugar until soft peaks form, about 4 to 5 minutes.
Fold peaked whites into the batter until just incorporated.
Pour batter evenly into greased cake pans.
Bake for 35 minutes, or until an inserted toothpick comes out clean.
Transfer each pan to a baking rack and let sit for 10 minutes. Carefully invert the pans to remove each cake layer. Discard the parchment paper. Allow the cake layers to completely cool before adding the frosting.
While the cake is baking make the frosting: In a stand mixer (or mixing bowl), mix together the room-temp cream cheese and butter until light and fluffy. Mix in the other ingredients (with 3 tbsp coconut flakes) until fully incorporated. Allow it to chill in the refrigerator for at least 30 minutes.
Toast ⅓ cup of the coconut flakes until lightly browned.
Place one cake on a cake platter. Add a layer of frosting, and continue with the remaining layers. Frost the top and sides of the cake. Sprinkle the toasted coconut flakes on the top of the cake.