Preheat your oven to 350 degrees Fahrenheit.
Prepare a 9-inch bundt pan by greasing it with butter and coating the inside of the pan evenly with a thin dusting of flour. Set aside.
In the bowl of your stand mixer fitted with the paddle attachment (or in a large bowl with a hand mixer), cream the butter and sugar until light and fluffy (about 4 minutes).
Add the pudding powder and whip on high speed until incorporated.
Add the eggs one at a time, mixing well after each addition.
Combine the milk, vegetable oil, and vanilla extract in a separate bowl or pyrex measuring cup and whisk with a fork to combine.
Add the milk mixture to the butter mixture slowly, mixing well until combined.
Add the flour, cocoa powder, cornstarch, baking powder and salt, and mix on low speed just until the batter forms and no streaks of flour appear.
Finish mixing by hand with a rubber spatula to be sure the batter is well combined (mixing with the electric mixer at this stage can cause over-mixing, so it's best to finish it gently by hand).
Pour the batter into the prepared bundt pan and bake at 350 degrees Fahrenheit for about 60 minutes (sometimes it requires 65 or even 70 minutes), or until a toothpick inserted into the middle of the cake comes out clean.
Cool in the pan for about 15 minutes and then invert onto a cooling rack before removing the pan to let the cake cool completely. If the pan feels a little difficult to remove, let it cool inverted on a cooling rack for another 10 minutes before trying again to remove the pan. Greasing and flouring the pan well before baking will ensure the cake is easy to remove, and using a non-stick bundt pan is a great choice.
Let the cake cool completely on a cooling rack before adding the frosting.