Preheat oven to 350°.
Heat coconut oil in a microwave safe dish or over the stove until melted and then set aside so that it cools a bit.
In a large bowl, combine flour, sugar, cinnamon, nutmeg, all spice, cloves, baking soda, baking powder, and salt; set aside.
In a separate bowl, combine milk, pumpkin, vinegar, and vanilla; stir well and then pour in coconut oil.
Fold wet ingredients into dry ingredients and stir to combine, but be careful not to over mix.
Line three 6" pans with coconut oil (or parchment) and then pour batter evenly into the pans, pounding them down on the countertop a few times to even out the batter.
Bake cakes for 33-38 minutes, or until a toothpick comes out clean.
Remove cakes from the oven and allow them to sit for 10 minutes before inverting them onto cooling racks. Wait until cakes are completely cooled before icing.
For the icing: cream all ingredients together in a stand mixer, or with a hand electric mixer. The icing should be on the thicker side, but still spreadable.
To assemble: slice the "dome" off of each cake layer. Place a large spoonful of icing on the top of one cake, using a spatula to smooth it out before placing the second cake overtop of the first layer, repeating this process for the next layer. Use the rest of the icing to ice the sides of the cake. Top it off with some of the caramel sauce (optional).