Set an oven rack in the center position and preheat the oven to 350°F (177°C). Line two 12-cup muffin pans with 24 paper liners and bring the eggs, cream cheese, and butter to room temperature.
In a large bowl, whisk the flour, baking powder, baking soda, salt, cinnamon, ginger, and nutmeg for about 30 seconds until evenly combined with no clumps.
In a second large bowl, whisk the granulated sugar, brown sugar, and eggs for about 1 minute. Add the oil, pumpkin puree, and vanilla, then whisk until smooth and glossy, about 1 more minute.
Fold half the dry ingredients into the wet ingredients with a rubber spatula, then fold in the rest. Stop as soon as no streaks of flour remain; do not overmix.
Use a cookie scoop or 1/4 cup measure to fill each liner about two thirds full, then gently tap each pan on the counter once to settle the batter.
Bake one pan at a time on the center rack for 18 to 22 minutes, switching pan positions halfway through if baking both together. Cupcakes are done when the tops spring back and a toothpick comes out clean or with a few moist crumbs.
Let the cupcakes rest in the pan for 10 minutes, then transfer to a wire cooling rack and cool completely, about 45 minutes, before frosting.
Beat the softened butter on medium speed for about 2 minutes until pale and creamy. Add the cream cheese and beat 1 to 2 minutes just until smooth, then mix in the vanilla and salt.
With the mixer on low, add 3 1/2 cups powdered sugar about 1 cup at a time, then beat on medium for 1 minute until fluffy. Add up to 1/2 cup more sugar for a stiffer frosting, or chill the bowl for 15 minutes if it feels too soft.
Fit a piping bag with a large open star tip and pipe a swirl on each cooled cupcake, starting at the outer edge and spiraling inward. Alternatively, spread the frosting with an offset spatula and dust lightly with cinnamon if desired.
Chill the frosted cupcakes in the refrigerator for 15 to 20 minutes so the frosting sets, then let them sit at room temperature for a few minutes before serving.