Preheat the oven to 175 ºC (350°F). Prepare three 6-inch cake pans by brushing the bottom and sides of each pan with butter (softened or melted), then line the bottoms with a round of parchment and dust the sides with cocoa powder. Set aside.
Sift or whisk together the flour, cocoa powder, baking soda, and salt in a large bowl and set aside.
Combine the milk, brown sugar, vinegar, canola oil, and vanilla in a separate bowl. Stir, then let it stand for a few minutes so that the sugar dissolves. The milk may curdle and thicken, and that's fine!
Add the wet ingredients to the sifted dry ingredients and stir until combined.
Pour the batter in the prepared pans and bake until a cake tester inserted in the centre comes out clean (about 30 minutes but keep an eye on it after 25 minutes).
For the frosting
The order of these steps is very important! First, in the bowl of an electric mixer fitted with the paddle attachment, beat together the icing sugar and butter until it is smooth.
Then, when the butter and sugar are nice and smooth, add in the cream cheese, and beat until you get a creamy, fluffy frosting, for at least 2 to 3 minutes, if not more.
Trim the cakes to level them with a large, serrated bread knife.
Place the bottom layer on a cake turntable (find it on Amazon) or cake stand, and pipe on about ¼ of the frosting, smoothing it out with an offset spatula. Top with the second layer of cake, frost, and repeat with the third layer. Smooth the last of the frosting on the sides and top of the cake. Decorate with chocolate sprinkles (optional).
Store in the refrigerator, letting the cake come to room temperature for about an hour before serving.
You can also bake this recipe in one 3-inch deep 6-inch cake pan. It will take 60 minutes to bake and make sure to check if the cake is done baking in the middle before taking it out of the oven or else there's a risk that the cake collapses.