Preheat the oven to 375F and grease a 9 x 13-inch baking dish with high sides.
In a large mixing bowl use a whisk to mix the flour, baking powder, salt, and spices.
In another smaller mixing bowl crack in the eggs, then pour in the oil, both sugars, and vanilla extract. Whisk it all together until it is well combined.
Add the wet mixture to the dry mixture and whisk it all together. It will be quite stiff. Then add in the carrots, pineapple, and chopped walnuts and combine. You will see that the mixture gets runnier as you go as the liquid in the carrots and pineapple mixes into the batter.
Pour the batter into your greased baking dish and spread it out so that it is in all the corners and smooth on top. Place into the oven to bake for 45 minutes or until a toothpick comes out clean if you poke it into the center of the cake. Allow the cake to cool for 5 minutes in the dish then gently remove it onto a cooling rack and let it cool until it is completely cold.
In the meantime, you can make your frosting by whisking the butter, cream cheese, icing sugar, and salt together until it is smooth.
When the cake is cold, tip the frosting onto the cake and smear it all over. Cut the cake into squares and enjoy!