Using a stand mixer, beat the egg whites with the whisk attachment until they are stiff and form peaks. This may take a minute or two. Pour the egg whites into another bowl and place them in the refrigerator until you're ready to add them to the batter.
Using the same bowl that you used to beat the egg whites, place the softened butter in and cream the butter for about 2 minutes (using the beater blade attachmenuntil it is white in appearance. Add the sugar to the butter and beat until fluffy (about another 1-2 minutes).
In a small bowl, combine the flour (measured carefully*), salt and baking powder. Set aside.
In another bowl, combine the milk and almond extract. Add the flour mixture to the butter/sugar mixture alternately with the milk. Add the stiffly beaten eggs to the cake batter. Fold the egg whites in gently. Do not overmix at this point. If you do, your cake will become more dense.
Grease and flour 2 9" round cake pans. Pour the cake batter equally into the prepared cake pans.
Bake the cakes at 350 degrees for 25-27 minutes or until the top bounces back when you touch it.
Allow the cakes to cool for 10 minutes, then loosen the edges and remove them from the pans to a wire rack, allowing them to cool completely.
While the cakes are cooling, prepare the frosting. In a saucepan, whisk the flour into the milk over medium-low heat until it thickens. Stir it constantly, lowering the heat to low if needed. The consistency should be very thick, like mashed potatoes. This step took about 12-15 minutes.
Remove the pan from the heat and set the pan in a bowl of ice for 5-10 minutes to quicken the cooling process. The temperature of the mixture should be at room temperature.
Stir in the almond extract.
If you have a food processor, process the white sugar for a minute or so so that the granules become finer.
While the mixture is cooling, cream together the butter and processed sugar using a stand mixer with the whisk attachment until light and fluffy. Do this for 5 minutes until the sugar is completely creamed and there is no graininess left.
Add the cooled flour mixture and beat it until it all combines and looks like whipped cream. This will take about another 3-5 minutes of beating. Keep scraping the sides of the bowl while the mixture is beating together so that everything gets well incorporated. Once the mixture has the texture of fluffy whipped cream, you are ready to ice the cake.
Once the cakes are cool, place one cake on a cake plate. Spread frosting on top of that layer, then place the other cake on top of the frosted cake. Use the remainder of the frosting to frost the top and sides of the cake. Decorate the sides and top with sliced and whole almonds, as the picture shows, if desired.