Preheat the oven to 350°F. Grease and flour two 9-inch round cake pans or three 8-inch round pans.
In a large mixing bowl cream together the butter, sugar and salt. Beat for 5 minutes on medium speed until light and fluffy.
In a separate bowl whisk the flour, cocoa and baking powder together.
Beat the eggs into the butter mixture one at a time. Mix together the milk with the vanilla. On low speed add 1/3 of the flour mixture to the creamed mixture and beat just until combined then add half the milk, another third of the flour, the remaining milk then the remaining flour. Scrape the sides and bottom of the bowl a couple of times in between.
Divide the batter evenly between the prepared pans. Bake 30 to 35 minutes until a toothpick in center comes out clean. Cool 5 - 10 minutes then turn out from the pans. Cool completely before frosting.
Make the frosting: In a large bowl beat the butter on medium speed 2 minutes. Add the sugar and beat 6 minutes on medium speed until light and fluffy. Beat in vanilla. On low speed beat in the marshmallow fluff just until combined. Frost the cake with a nice thick layer of frosting in the middle. Refrigerate for 25 - 30 minutes before pouring the ganache on top.
Make the ganache: In a small saucepan heat the whipping cream over medium heat until it comes to a simmer. Add the chocolate to a small, heat-proof bowl. Pour the hot cream over top and cover with aluminum foil. Let sit 3-4 minutes. Whisk until smooth. Allow to cool to lukewarm then pour over top of the cake. Spread it to the edges of the cake and allow to drip down the sides.
Garnish the top with rainbow sprinkles if desired.