Preheat oven to 350 degrees F. Butter and flour three 9-inch cake pans.
Whisk together the flour, baking powder, baking soda and salt.
In a electric mixer with the paddle attachment, beat the butter and sugar together for 3 minutes. Add eggs, one at a time, Beat in the vanilla. Reduce speed to low and add half the flour mixture. Add 1 cup of buttermilk and mix until combined. Add remaining flour mixture and beat. Add remaining buttermilk and beat. Remove from the mixer and finish mixing by hand if needed. Divide the batter into 3 bowls adding in the various mix-ins for each layer listed below. Once combined, transfer the dough into the prepped cake pans.
Bake until golden brown and done, about 30-35 minutes. Let cakes cool for a few minutes and then remove to a wire rack to cool completely.
Bring a few inches of water to a boil in a saucepan that can hold a standing mixer's bowl above the water. Whisk the sugar, the egg whites, lemon juice, and salt in the bowl by hand. Set the bowl above the boiling water and continue whisking until the mixture is hot to the touch and the sugar dissolves, about 1 to 2 minutes. Transfer the bowl to a standing mixer fitted with the whisk attachment and beat the egg whites at medium-high speed until they almost hold a stiff peak and are fully cooled, about 10 minutes. Beat in the butter, a little at a time, until the icing is smooth and spreadable.
To assemble the cake, place one layer of the cake on a cake stand. Spread a 1/2 inch layer of the Swiss Buttercream on top and carefully place the 2nd layer of cake on top. Repeat the process with additional Swiss Buttercream. Add the last layer of cake of top. Frost the top of the cake with more of the Swiss Buttercream and add a super thin layer of the Swiss Buttercream to the sides of the cake. Frost until smooth. Drizzle with ganache and decorate with any desired toppings and serve as needed.