Preheat the oven to 325º F. Line 12 muffin cups with paper or foil liners.
Stir the flour, baking powder, salt and sugar together in a mixing bowl. Add the butter and mash it around until it coats the dry mixture, then add vegetable oil.
Mix the beaten eggs with about 2 tablespoons of the milk and the vanilla. Add the egg mixture to the flour mixture and stir to incorporate.
Now gradually stir in the remaining milk and beat with the mixer on medium speed for about 1 ½ minutes.
Divide batter evenly among muffin cups (cups should be a little over half full).
Bake at 325 for 20 to 25 minutes or until toothpick inserted in center comes out clean. Cool in pan 5 minutes. Remove to wire rack and let cool.
While cupcakes are cooling, prepare pudding mix according to package directions. Let it cool.
Carve a small well in each cupcake and reserve just the top part of the little piece that you pull out. Spoon pudding into the well, then cover the pudding with the top part of the cut cake. Or you can just skip doing that altogether and pipe icing directly over the pudding.
Chill the cupcakes while you make the icing. Melt the two chocolates together in the microwave using 50% power and stirring every 30 seconds. Set aside to cool slightly.
Beat the softened butter with the sugar until creamy and smooth. Beat in the cocoa powder and vanilla. Stir in the melted chocolate. Beat on high with the electric mixer, adding milk as needed.
Spread the icing over the cupcakes or put the icing in a decorating bag and pipe it on with your favorite tip (mine is a closed star). Alternatively, you can put it in a zipper bag, cut off the bottom corner, and pipe it on as a big dot.