Preheat the over to 350. Lightly spray cupcake pan with cooking spray and line it with cupcake liners.
In a small sauce pot, mix water with unsweetened cocoa powder. Bring to a low boil. Cook for about a minute and set aside to cool.
In a bowl of an electric mixer, combine flour, sugar, baking powder, baking soda and salt. Mix until combined.
Separately, whisk together vegetable oil, vanilla extract, eggs and sour cream.
On low speed, slowly pour in the egg mixture into the dry ingredients. Once it's combined, bring the speed up to medium and beat for about two minutes.
Lower speed to low again and slowly pour in hot cocoa. Mix until just combined. Turn off mixer.
Using a spatula, scrape sides and bottom of the bowl, continue mixing with a spatula until batter is smooth.
Pour batter into the cupcake liners, filling them about ¾ of the way, and bake for 18-20 minutes. Do a toothpick test at 18 minutes to check for doneness.
Cool completely before frosting.
Frosting:
Beat butter and cream cheese together, on medium-high speed, until smooth, 1-2 minutes.
Lower the speed to low and beat in powder sugar and vanilla extract.
Turn up the speed back to medium-high and beat for about 3-4 minutes, until the frosting is light, smooth and fluffy.
(I prefer to melt my chocolate in a double boiler because it always yields best results. You can also melt it in a microwave at half power for 45 seconds, stir and do another 30 seconds, still on half power . (Repeat another 30 seconds if needed.) When chocolate is almost all melted, just keep stirring until it's all melted.)
On low speed, drizzle in melted white chocolate and mix well, make sure to scrape sides and bottom of the bowl and mix until all even.
Fill a piping bag, fitted with a frosting tip, with cream cheese frosting and frost cooled cupcakes. (I recommend using 1M frosting tip.)
You can grate some white chocolate on top as a decoration. I actually created a little "snow dust" decoration by grating white chocolate chips on a zester.