Preheat oven to 350°F (175°C). Bring butter, milk, and egg whites to room temperature. Grease two 9-inch round cake pans; flour or line bottoms with parchment.
In a large bowl, beat softened butter and granulated sugar on medium speed until pale and fluffy, 3–5 minutes. Scrape bowl as needed.
Beat in vanilla. Add egg whites one at a time, mixing just to incorporate and keeping the mixture smooth and emulsified.
In a separate bowl, sift together flour, baking powder, and salt.
Add dry ingredients to the butter mixture in 3 additions, alternating with the milk in 2 additions (start and end with dry). Mix on low just until combined to keep the crumb light.
Divide batter evenly between pans and smooth tops for even baking.
Bake 25–30 minutes at 350°F (175°C), until a toothpick inserted in center comes out clean and tops spring back lightly.
Cool in pans 10 minutes, then turn out onto a cooling rack to cool completely before frosting.
Beat butter until creamy. Gradually add sifted powdered sugar, vanilla, pinch of salt, and enough milk/cream to reach smooth, spreadable consistency.
Frost first layer, stack the second, then frost top and sides. Slice and enjoy. Store leftovers covered in the refrigerator.