Preheat oven to 350°F (175°C). Grease two 9-inch round cake pans, line the bottoms with parchment circles, and grease the parchment.
Peel and finely grate 4–5 medium carrots until you have 3 cups (300g); use the fine side of a box grater or pulse in a food processor. Do not use store-bought pre-shredded carrots.
In a large bowl, whisk together the flour, baking powder, baking soda, salt, cinnamon, nutmeg, and ginger until evenly combined with no lumps.
In a second large bowl, beat eggs on medium speed for 30 seconds, then add maple syrup and coconut sugar and beat 2–3 minutes until slightly thickened. Mix in cooled coconut oil, Greek yogurt, and vanilla until smooth.
Pour the wet ingredients into the dry ingredients and fold gently with a rubber spatula just until no flour streaks remain — do not overmix.
Fold in the grated carrots until evenly distributed, then fold in walnuts and raisins if using.
Divide batter evenly between prepared pans, smooth the tops, and tap each pan on the counter 2–3 times. Bake on the center rack for 30–35 minutes, until a toothpick inserted in the center comes out with just a few moist crumbs.
Cool cakes in pans on a wire rack for 15 minutes, then run a knife around the edges, invert onto racks, peel off parchment, and cool completely (1–2 hours) before frosting.
Beat softened cream cheese until smooth, then add Greek yogurt, maple syrup, vanilla, and salt and beat on medium-high for 2–3 minutes until light and fluffy. If too thin, refrigerate for 15 minutes.
Place one cake layer on a serving plate, spread one-third of the frosting over the top, then add the second layer and frost the top (and sides if desired). Refrigerate assembled cake for 30 minutes before slicing.