Preheat oven to 350 degrees
In a small bowl, whisk together eggs, milk and vanilla
In a standing mixer, stir together flour, sugar, baking powder, and salt
Beat the butter into the flour mixture, one cube at a time. Continue to beat until it resembles coarse crumbs.
Add the 1/2 of the egg-milk mixture and oil and beat the batter until light anf fluffy. Add remaining egg-milk mixture and vanilla pudding and mix just until combined.
Using a spatula scrape the sides of the bowl.
Spread into greased and floured 8 or 9 inch round cake pans and smooth tops with spatula.
Bake for 16-22 minutes, depending on the depth of the pans. If the cake layers are thick, they will cook for less time than thicker layers.
Let cakes cool. Run a knife around the edge of the cake pan and flip over to a cooling rack.
For frosting - in a mixing bowl, cream together butter, cocoa, sugar and cream until light and fluffy. You may need to add more cream or milk depending on how thick your icing it. You want an easy to frost consistency.
After cake layers have cooled completely, frost each layer.