Preheat the oven to 170°C (fan-forced) (340°F). Grease and line two 20 cm round cake tins and set them aside.
In a large bowl, mix the plain flour, baking soda, baking powder, salt, ground cinnamon, nutmeg and ginger, then set the bowl aside.
Using an electric beater, beat together the white sugar, brown sugar, eggs, oil and vanilla essence until the mixture looks smooth and well combined. Add the grated carrots, crushed pineapple and shredded coconut into the wet mixture and fold everything together by hand until combined.
Add the dry mixture into the wet bowl and gently fold by hand until just combined, then stir through the chopped walnuts. Divide the batter evenly between the two prepared tins. Bake for 40–45 minutes or until a toothpick inserted into the centre comes out clean. Cool the cakes in their tins before moving them to a wire rack to cool completely.
Beat the softened cream cheese and icing sugar until smooth, then mix in the vanilla essence. Add 2–3 tablespoons of the reserved pineapple juice to make the icing creamy. Place one cake layer on a serving plate and pour half the icing over the top, smoothing it to the edges. Add the second cake layer on top and spread about three-quarters of the remaining icing over it. Leave the last quarter of the icing in the bowl and mix in another 3–5 tablespoons of pineapple juice to loosen it. Pour this loosened icing around the edges of the cake so it gently drips down the sides.
