Preheat oven to 350°F. Spray 3 (8 or 9 inch) cake pans with baking spray or butter and flour. Set aside.
To Make Cake Layers: In a medium size mixing bowl, use a whisk to sift together flour, baking powder and salt. Set aside
Using an electric mixer, cream together the butter, shortening, vanilla, brown and granulated sugars in a large mixing bowl. Beat for 2 minutes or until creamy and light beige in color.
Add the eggs one at a time beating well after each addition stopping to scrape the sides of the bowl as needed.
Lower the speed of the mixer and add sifted dry ingredients to the creamed butter mixture alternately with the buttermilk, beginning and ending with flour.
After all has been added increase the speed of the mixer to medium and beat just until fully combined around 45-60 seconds. Divide batter evenly between prepared pans.
Bake cake layers for 25-30 minutes or until the tops bounce back when gently touched. You can also test with a toothpick inserted into the center that comes back clean. Cool completely in the pans on a baking rack before frosting.
To Make Caramel Icing: In a heavy bottomed saucepan over medium heat melt together butter, evaporated milk and brown sugar. Bring to a boil then lower the heat and simmer for 2 minutes, stirring constantly until sugar is completely melted.
Remove from heat, add vanilla, mix well. Set aside to cool to lukewarm.
Once lukewarm, use an electric mixer on medium-low to gradually beat in powdered sugar one cup at a time. Whip in 5-6 cups until fully combined. You can add whole milk or half and half as needed to make it smooth and spreadable.
Spread frosting evenly between layers and on sides of cake. Chill for at least 4 hours to set.
Store in an airtight container chilled for up to one week.