Preheat oven to 180°C. Butter 2 (8-inch) square cake tins, line them with buttered parchment paper, and dust with flour.
Toss the carrots, walnuts and 80g pineapple with 60g of the flour in a small bowl and set aside.
Whisk the remaining flour, cinnamon, nutmeg, ginger, baking soda, baking powder and salt together in a medium bowl.
In another large bowl beat the eggs and sugar with an electric mixer until thick and light, about 5 minutes. While continuing to beat the eggs slowly, gradually add the oil, and then the puréed carrot.
Scatter the dry ingredients over the wet and then gently fold them together to make a loose batter. Gently fold the nuts, carrots, and pineapple into the batter. Pour into the prepared tins. Bake the cakes until firm to the touch and a cake tester comes out clean, about 45 minutes. Cool cakes in pans on a rack for 25 minutes. Turn cakes out of pans and cool completely on the rack.
For the icing:
Beat cream cheese in a large bowl, with an electric mixer until smooth and fluffy. Gradually beat in the butter until smooth. Sift the sugar over the cream cheese, and beat until smooth. Add the lemon zest and vanilla extract and beat until light and fluffy. Refrigerate to set slightly for about 20 minutes.
To assemble the cake, place a cake layer on a cake stand, plate, or cake board. Spread about half of the icing over top, but leave the sides bare. Sprinkle icing with about half of the pineapple. Top with a second cake layer, and repeat with remaining icing and pineapple. Serve.