Preheat oven to 350 degrees F.
Make the flax seed egg by combining the ground flax seed and water. Stir to combine. Set aside for 5 minutes.
In a large bowl, combine the freshly grated carrots with the white and brown sugar. Stir to combine. Set aside for 3-5 minutes. This step helps to break down the carrots slightly.
Add the wet ingredients to the large bowl with the carrots - the flax seed egg, the oil, milk, maple syrup, and vinegar.
In a separate medium bowl, combine all remaining dry ingredients - the flour, baking soda, baking powder, salt, and spices. Stir or whisk well to combine.
Add the dry ingredients to the wet ingredients and stir gently to combine. Using a folding action or slow stiring will help to avoid overmixing. If adding walnuts and/or raisins to the mix add them during this step.
Pour the cake batter into two 9" cake rounds, evenly distributing the batter into each pan.
Bake in oven for 27-32 minutes, checking for doneness with a toothpick. Remove from oven and cool for 10 minutes before inverting the pans to allow the cakes to cool an additional 1-2 hours.
While the cake is cooling combine the softened butter, cream cheese, lemon zest and vanilla. Using a hand mixer mix until light and fluffy.
Add the powdered sugar in portions and carefully mix with hand mixer, until all powdered sugar has been mixed into the frosting.
When the cake is completely cooled, layer the cakes with frosting in the middle and on the top. Decorate with freshly grated carrots, colored frosting, or other decoration.
Serve and enjoy.