In a large bowl, cream the butter and sugar together and add eggs, one at a time, beating well; add vanilla. Add the flour mixed with baking powder and mix. Beat in enough milk to make the dough spreadable (brownie batter consistency). Pour half the mixture into a greased 9x13-inch baking pan.
Mix the other half with the cocoa powder and about 1 Tbsp. milk so that the batter stays the same consistency. Smooth over the top of white batter. Swirl a bit for a wavy effect.
Drop the drained, pitted cherries evenly over the top of the batter. Bake in a preheated 350-degree oven for 35 minutes. Cool completely in the pan.
While the cake is cooling, start the pudding according to package directions, using two cups of milk. Cover the pan and let the pudding cool completely to room temperature.
Beat the softened butter with the powdered sugar until light and fluffy. The pudding and the butter must be the same temperature or the emulsion you are creating will not work.
Mix the pudding by the spoonful into the butter mixture and whip until light and fluffy. Spread over the cooled cake.
Melt the chocolate on the stove. Mix it with the powdered sugar and add hot water to create a spreadable frosting. Spread on top of the butter cream. Refrigerate cake until ready to serve.