Preheat the oven to 350 F and spray the bottoms of three 8-inch cake pans with non-stick spray.
In a bowl, sift together the flour, sugar, cocoa powder, salt and baking soda.
In a separate large bowl, whisk together the eggs, oil, buttermilk, vinegar, vanilla and a few drops of red gel food coloring.
Add the wet ingredients to the dry, and whisk briefly, just until combined and smooth; don’t over-mix.
Divide the batter between the pans and bake on the middle rack in the oven for about 25-28 minutes, until a cake tester inserted into the center of the cakes comes out clean and the tops spring back when gently touched.
Set the cakes on a wire rack, cover loosely with a clean kitchen towel and cool completely before frosting.
In the bowl of your stand mixer fitted with the whisk attachment, whip the butter, cream cheese and shortening for several minutes until smooth.
Add the powdered sugar and meringue powder by spoonfuls, mixing on low to combine. Add the salt, vanilla and milk (if needed to slightly thin the buttercream), and whip on medium speed for 4-5 minutes, scraping the bowl occasionally, until very light and fluffy.
Be careful not to add too much milk; cream cheese buttercream is softer than all-butter buttercream, and needs to be thicker if you plan on piping it onto your cake.
Fill and stack the cake layers with the buttercream, then frost all-over with a very thin crumb coat of buttercream; chill for 30 minutes. Frost (or pipe) the remaining buttercream onto the cake.
Note that if you don't do any decorative piping, you'll have leftover frosting. Just scoop it into a freezer bag, label it, and freeze it to use later.
The cake should be served at room temperature, but leftovers should be stored in the refrigerator, in an airtight container for up to 3 days.
Keyword Cake, Christmas, Cream Cheese Frosting, High Altitude, Red Velvet