Preheat the oven to 350 degrees Fahrenheit.
Line 3 round 8 inch cake pans with parchment paper and set aside. It's easiest to lightly grease the sides and bottoms, then cut out round pieces of parchment and place them in each pan so they stick easily. You can also use 2 9 inch round pans, but see notes for adjustments in baking time etc.
In a large mixing bowl, whisk together all wet ingredients. Be sure to shake the can of coconut milk before opening so that the creamy white part is well combined with the more watery part. You need 1 1/2 cups total, which is just shy of 1 can. Reserve the rest for the frosting!
In a second bowl, whisk together all dry ingredients. Be sure to spoon and level all flours, do not scoop right from the bag!
Combine the dry ingredients into the wet ingredients and whisk well until a batter forms.
Transfer to the prepared pans and fill each as evenly as possible. If you have a kitchen scale you can use it to get accurate measurements. Otherwise, just eyeball it!
Bake for 30-38 minutes. My oven was exactly 35 minutes, but all ovens are different. Check with a toothpick for doneness. If using 2 nine inch pans, bake time will be around 35-42 minutes, but check with a toothpick.
Once done, remove from the oven, and let cool in the pans for about 15 minutes or until easy to handle.
Once cool enough, flip over onto a cooling rack, they should slide right out, but if not, just lightly tap the bottom.
Let cool completely before frosting. A little bit of internal heat will cause the frosting to melt, so be sure they are completely cool. You can stick them in the fridge if you need to speed things up.
While cooling, make the buttercream by beating together the palm shortening or butter with the coconut milk until creamy.
Beat in the sifted sugar, sifted cocoa and all remaining ingredients until your desired consistency is reached. If it's too thin, add more sugar, if it's too thick add some regular non-dairy milk.
Once the cake is cool, frost between each layer and then frost the outside. Enjoy!