Preheat oven to 350F and grease and flour three 6" cake rounds, line with parchment.
In a medium bowl, whisk flour, baking powder, salt, and spices. Set aside.
Using a stand mixer fitted with the paddle attachment, beat butter until smooth. Add sugars and beat on med-high until pale and fluffy (2-3mins).
Reduce speed and add eggs one at a time, fully incorporating after each addition. Add molasses and vanilla and mix until incorporated.
Alternate adding flour mixture and buttermilk, beginning and ending with flour (3 additions of flour and 2 of milk). Fully incorporating after each addition. Do not overmix.
Spread batter evenly into prepared pans. Smooth the tops with a spatula.
Bake for approx. 30-35mins or until a toothpick inserted into the center comes out mostly clean.
Place cakes on wire rack to cool for 10mins then turn out onto wire rack to cool completely.
Cream Cheese Frosting:
Beat butter and cream cheese until fluffy (2 mins). Add powdered sugar one cup at a time. Add vanilla and beat until fluffy (3 mins).
Place one layer of cake on a cake stand or serving plate. Top with 2/3 cup of frosting. Repeat with remaining layers and apply a thin coat of frosting all over the cake to crumb coat. Chill for 20mins. Frost the cake with a rustic pattern using the remaining buttercream.
Top with gingerbread and sprigs of rosemary if desired.