Preheat oven to 350°F. Spray 3 (9-inch) round cake pans with non-stick cooking spray and line with parchment paper. Set aside.
In a medium bowl, measure out flour, baking powder and salt. Whisk together. Set aside.
In a large bowl, cream butter with and electric mixer until smooth. Add sugar and mix. Add eggs and mix until combined. Add half of the flour mixture and half of the buttermilk, plus the vanilla. Mix on medium low until combined. Repeat with remaining flour and buttermilk. Mix until combined, then continue mixing on medium low for 30 seconds. Divide batter between the three prepared pans. Bake on the middle rack of your oven for 22-27 minutes. At 22 minutes, test one of the cakes by inserting a toothpick. If it comes out clean, they are done. If not, continue to bake for 5 more minutes. Let cool completely.
In a large bowl, cream butter and cream cheese with an electric mixer until smooth. Gradually add the powdered sugar with the mixer on low. Once it's added, turn mixer up to medium high and beat until smooth. Add flavoring and mix.
Remove cakes from pans. Place one layer on cake plate. Add frosting. Add another layer. Frost. Add top layer. Frost top and sides of cake. Add a crown of rosemary on top and cranberries in the middle. Stor cake, covered, at room temperature for one day and in the refrigerator for up to a week.