Heat the oven to 350°F (175°C). Grease the pan and line it with parchment, leaving an overhang.
Spread the chopped macadamias on a sheet pan and toast for 6 to 8 minutes until fragrant and lightly golden. Cool completely.
Drain the pineapple in a fine-mesh sieve, pressing firmly with a spatula for about 1 minute until it stops dripping. You should have about 1 cup. Save the juice.
Whisk the flour, baking soda, baking powder, salt, cinnamon, ginger, and nutmeg in a bowl.
In a large bowl, whisk both sugars with the eggs, oil, and vanilla for 1 to 2 minutes until glossy and slightly thickened.
Stir in the carrots, drained pineapple, coconut, and cooled macadamias.
Fold in the dry ingredients until no flour streaks remain. Do not overmix.
Spread the batter evenly in the pan and tap it on the counter once or twice to release large air bubbles.
Bake for 35 to 40 minutes, until the top is deep golden, the center springs back, and a toothpick comes out with a few moist crumbs (about 205°F / 96°C in the center).
While the cake is warm, brush the top with the reserved pineapple juice if desired. Cool in the pan for 15 minutes, then lift out and cool completely on a rack, 1 to 1½ hours.
Beat the cream cheese and butter for 1 to 2 minutes until smooth. Add the powdered sugar in two or three additions on low speed, then add the vanilla and salt and beat on medium for about 1 minute until fluffy.
Spread the frosting over the fully cooled cake. To toast the coconut for the top, bake it at 350°F for 3 to 5 minutes, stirring once or twice, until pale gold. Sprinkle it over the frosting with chopped macadamias.