Preheat the oven to 350 degrees Fahrenheit.
Whisk together eggs, milk, and vanilla in a small bowl.
In a stand mixer, combine flour, sugar, baking powder, and salt.
Beat the butter into the flour mixture one cube at a time until it resembles coarse crumbs.
Add half of the egg-milk mixture and the oil; beat until light and fluffy.
Add the remaining egg-milk mixture and pudding mix; mix just until combined.
Scrape the sides of the bowl with a spatula.
Divide batter evenly into greased 8 or 9-inch round cake pans and smooth the tops.
Bake for 16 to 22 minutes, adjusting time for pan depth; thinner layers bake faster.
Allow cakes to cool, then run a knife around the edges and invert to remove from pans.
To make frosting, cream together butter, cocoa powder, powdered sugar, and cream until light and fluffy.
Adjust cream quantity to reach desired frosting consistency.
Frost each cooled cake layer with the chocolate buttercream.
Decorate the cake with chocolate shavings, chips, sprinkles, or M&M’s as desired.