To make the cupcakes, preheat the oven to 350ºF. Line 48 mini muffin cups with paper liners.
In a medium bowl, whisk together flour, baking powder, spices, and salt.
In a stand mixer fitted with the paddle attachment, beat butter until pale and creamy, about a minute. Add the sugar and continue to beat for 3-4 minutes, until the mixture is light and fluffy. Add the eggs one at a time, beating well after each addition. Scrape down the bowl as needed.
Stir the vanilla into the milk. Add about one third of the flour mixture to the butter mixture and mix on low until just combined. Add about half the milk, mixing on low until just combined. Add another third of the flour, the rest of the milk, and the last of the flour, mixing each addition just until combined.
Divide the batter between the prepared tins and bake for 10-12 minutes or until the tops are just set. Cool completely before frosting.
To prepare the frosting, place cream cheese in the bowl of a stand mixer fitted with the paddle attachment. Beat on low about one minute, ensuring that it is soft and pliable. Stop the mixer and scrape down the bowl. Add the butter and beat on medium speed for one minute, until thoroughly combined.
Turn the mixer on low and add the salt and powdered sugar, followed by the vanilla extract. Beat until almost incorporated.
Stop the mixer and scrape down the bowl and beater. Beat on medium speed until the frosting is velvety soft.
Use immediately or store in an airtight container in the refrigerator for up to seven days. Bring to room temperature before spreading or piping on cupcakes.