Preheat the oven to 350°F. Line a 9 x 13 x 3-inch cake pan with parchment paper on all sides. Set aside.
In a large bowl, finely shred the carrots. Add the sugar, oil, eggs, milk, and vanilla extract. Mix well
In a separate bowl, combine flour, baking powder, ginger, cinnamon, and salt. Carefully fold dry ingredients into wet until mostly combined.
Fold in the raisins (if using), and shredded coconut. Pour the batter into the prepared pan.
Bake for 30 minutes, or until a knife inserted in the center of the cakes comes out clean. Allow to cool completely before frosting.
While the cake cools, make the frosting. To make frosting, whip butter and cream cheese in a stand mixer on high speed for 1 minute. Lower the speed and add in the powdered sugar, salt, and vanilla extract, mixing until combined.
Spread the frosting over the cooled cake, using a spoon or an offset spatula to make big swirls. If desired, top with finely chopped nuts! Enjoy!