For the cake:
For the frosting:
To make the cake, preheat the oven to 350˚ F. Line three 9-inch cake pans with parchment paper, and grease and flour the sides, tapping out the excess.
In a large mixing bowl, combine the flour, sugar, baking soda, salt, cinnamon and nutmeg. Whisk together to blend. In another mixing bowl, combine the eggs, vanilla, oil, and cream of coconut. Whisk well to combine. Add the wet ingredients to the bowl with the dry ingredients and stir just until incorporated. Add in the shredded carrots, diced pineapple, flaked coconut and macadamia nuts. Fold in gently with a spatula until evenly incorporated.
Divide the batter evenly between the prepared cake pans. Bake for 30-35 minutes, rotating the cakes 180 degrees and from top to bottom racks (and vice versa) halfway through baking. The cakes are finished baking when golden brown on top and a toothpick inserted in the center comes out clean. Cool the cakes 5-10 minutes in the pans, then turn out onto a wire rack to cool completely.
To make the frosting, in the bowl of a stand mixer fitted with the paddle attachment beat the cream cheese on medium-high speed until smooth. Add in the powdered sugar and mix until incorporated. Beat 1 minute more, until smooth and fluffy. Mix in the heavy cream, cream of coconut and salt until smooth.
To assemble the cake, place one cake layer on a cake stand or platter. Spread a layer of cream cheese frosting over the top. Top with another cake layer, and more frosting on top of that. Place the final cake layer on top. Use the remaining frosting to cover the top and sides of the assembled cake, reserving up to 1 cup for detailing if desired.