Cream butter and granulated sugar in a stand mixer with paddle attachment on low speed for a few seconds, then increase to medium speed and beat until light and airy for about 3 minutes.
Scrape the sides and add eggs and vanilla. Mix on low for 5-10 seconds, then increase speed to medium-high and beat until eggs are fully emulsified with butter for no more than 30 seconds.
In a medium bowl, whisk together flour, baking powder, salt, and ¼ cup crushed candy canes until combined.
Add flour mixture to the dough and mix until just combined without overmixing.
Scoop dough into 2-ounce portions and roll the top of each cookie dough ball in additional granulated sugar.
Chill cookie dough balls in the fridge for at least 30 minutes or up to 1 hour.
Make frosting by beating butter and cream cheese with a stand mixer until smooth and combined for about 1 minute.
Add vanilla, powdered sugar, and salt to frosting. Slowly pulse to incorporate powdered sugar, then increase speed to medium-high and beat until light, airy, and smooth for about 3 minutes.
Store frosting in an airtight container in the fridge until ready to use.
Preheat oven to 350°F about 30 minutes before baking.
Transfer chilled cookie dough to a parchment-lined baking sheet, leaving 2 inches between each ball, about 6 dough balls per sheet.
Bake for 10-12 minutes or until the bottom of the cookies are just barely showing signs of browning.
Cool cookies for at least 30 minutes at room temperature.
