Preheat the oven to 350°F (175°C). Line a 10x15-inch jelly roll pan with parchment paper and lightly coat it with baking spray or oil to prevent sticking.
In a medium-sized bowl, combine the flour, baking soda, baking powder, salt, cinnamon, ginger, and nutmeg. Mix thoroughly to ensure even distribution of spices and leavening agents.
In a large bowl, beat the eggs, sugar, and vanilla extract together using a hand or stand mixer until the mixture is pale and thickened, approximately 2 to 3 minutes.
Add the oil to the mixture and incorporate fully. Gently fold in the grated carrots, taking care not to deflate the volume. Incorporate the dry ingredient blend gradually, stirring just until no streaks remain. If using, gently fold in the chopped nuts.
Pour the batter into the prepared pan, spreading it evenly to the edges. Bake for 10 to 12 minutes, or until the top springs back lightly when pressed with a fingertip.
While the cake is baking, place a clean kitchen towel flat on a work surface and sprinkle a generous layer of powdered sugar across its surface to prevent sticking.
Once baked, promptly invert the cake onto the sugared towel. Remove the parchment paper carefully. Starting from the short side, gently roll the warm cake inside the towel and allow it to cool completely in this rolled form.
For the filling, beat together the softened cream cheese and butter until smooth and creamy. Add the vanilla extract, then gradually mix in the sifted powdered sugar. Continue beating until light and fluffy.
When the cake is fully cooled, carefully unroll it. Evenly spread the cream cheese mixture across the surface, extending to the edges.
Re-roll the cake (this time without the towel), creating a tight spiral. Wrap the roll in plastic wrap and refrigerate for a minimum of 1 hour to set.
Before serving, dust the top of the chilled roll with additional powdered sugar, if desired. Slice and present.