For the cake: Preheat the oven to 350 degrees F. Spray two 9-inch round cake pans with nonstick cooking spray.
Bring 1/2 cup water to a boil in a small saucepan. Whisk in the cocoa powder until smooth. Set aside and cool to room temperature.
In a stand mixer, beat together the coconut oil, sugar, eggs, egg whites and vanilla until well blended, about 2 minutes
In a separate bowl, whisk together the cake flour, baking powder, baking soda and salt.
Add the cooled cocoa mixture to the wet ingredients and mix on low speed to blend. Add half of the flour mixture to the mixer; beat on low speed until just combined. Scrape down the sides of the bowl, then add the remaining flour mixture and beat to combine. Increase the mixer to high speed and beat for an additional 2 minutes. Divide the batter between the prepared cake pans.
Bake until a cake tester inserted in the center comes out clean, 15 to 20 minutes
For the frosting: In a stand mixer fitted with the paddle attachment, cream together the butter and cream cheese until smooth and fluffy. On low speed, slowly mix in the powdered sugar and cocoa powder. Add the salt and quickly blend to combine.
To frost, place the first cake layer, flat-side up, on a cake stand. Place a big dollop of the frosting in the center and smooth out to the edges with an offset spatula. Top with the second cake layer, flat side up. Add another big dollop of frosting and spread out to the edges to completely cover the top. Next, frost the sides and smooth out as best you can.