Preheat your oven to 325°F. Grease and flour three 8-inch cake pans. Line the bottoms with parchment paper for easy removal.
In a large bowl, whisk together the yellow cake mix, flour, sugar, and vanilla pudding mix until well combined.
Add sour cream, vegetable oil, water, eggs, and vanilla extract to the dry ingredients. Mix on low speed for 30 seconds, then on medium for 2 minutes until smooth.
Combine cocoa powder and hot water to form a paste. Stir the paste into 2 cups of the prepared yellow cake batter to make the chocolate swirl.
Divide half of the vanilla batter into the pans. Spoon chocolate batter over it, then top with remaining vanilla and chocolate batters. Swirl with a butter knife in figure-eight motions.
Bake at 325°F for 20–25 minutes until a toothpick comes out with a few crumbs. Let cool in pans for 10 minutes, then transfer to racks to cool completely.
Beat butter until smooth. Add vanilla, then slowly mix in powdered sugar, cocoa powder, and salt. Add milk gradually and beat 5–6 minutes until fluffy.
Stack the layers with frosting between each. Spread a crumb coat and chill for 15 minutes. Frost the entire cake and decorate as desired.