Preheat the oven to 350°F and grease two 9-inch cake pans or one 9x13-inch pan.
Whisk the flour, baking powder, baking soda, salt, cinnamon, ginger, and nutmeg in a bowl.
In a larger bowl, mix the oil, brown sugar, granulated sugar, eggs, and vanilla until smooth.
Add the dry ingredients to the wet mixture and stir just until combined.
Fold in the carrots, pineapple, walnuts, and coconut.
Divide the batter into the prepared pans and bake until a toothpick comes out clean, about 30 to 40 minutes for layers or 40 to 50 minutes for a 9x13 pan.
Cool the cake completely before frosting.
Beat the cream cheese, butter, powdered sugar, vanilla, and salt until fluffy, then spread over the cooled cake.