For the cake: Heat the oven to 350. Grease and line the bottoms of two 8-inch round cake pans with parchment paper.
In a medium-small bowl, combine the oil, milk, pineapple, flaxseed and vanilla. Let the mixture sit for 10 minutes.
In a large mixing bowl, sift together the flours, sugars, baking soda, cinnamon, ginger, nutmeg, cloves and salt. Fold to evenly combine.
Gently stir the wet mixture into the dry mixture until just combined. Do not overmix.
Fold in the carrots, walnuts and raisins.
Evenly distribute the batter between the cake pans.
Bake for about 35 to 40 minutes, or until a knife inserted into the center of the cakes comes out clean.
Transfer the cake pans to a cooling rack to cool for 10 minutes before gently loosening the cake from the pans with a knife and inverting onto the rack to cool completely.
For the frosting: In a large bowl, beat the softened butter, cream cheese and vanilla with a hand mixer until combined. Sift in the cinnamon and sugar then carefully beat until smooth.
Once the cake has cooled, frost and decorate with toasted walnut pieces, if you wish.
Store covered at room temperature for up to 3 days for best quality and taste. I like to press plastic wrap onto the cut sides of the cake to keep it fresh.