Preheat oven to 350 degrees.
In a large bowl, mix together flour, sugar, cocoa, salt, baking soda and pudding; set aside.
In a separate bowl, whisk together buttermilk, eggs, and vanilla.
In a medium saucepan, heat butter, Coca-Cola and miniature marshmallows to boiling, stirring frequently.
Pour hot butter/cola mixture over flour mixture and mix well.
Add in buttermilk/egg mixture, stirring quickly until batter is well combined.
Pour batter into a greased, 9x13 inch pan. Bake for 35 minutes.
Meanwhile, make frosting by melting 1/2 cup butter with 1/3 cup Coca-Cola in a medium saucepan. Stir in cream and vanilla.
Stir together powdered sugar and 3 tablespoons cocoa in a medium bowl.
Pour butter mixture over powdered sugar and stir to combine. Spread over cooled cake.
Top with chopped nuts, if desired.