Mix all the dry ingredients in a mixing bowl fitted to an electric mixer. Add softened butter and combine on low speed.
Add egg whites, one at a time, then mix in the whole egg.
Gently stir in sour cream, water, and extracts, beating to keep the mixture fluffy.
Prepare 24 cupcake tins with paper liners. Divide batter evenly and bake at 350F. Bake for 18 minutes, then check every few minutes. Remove from oven and let cool completely.
Meanwhile, beat together butter, shortening, vanilla, and 1 tbsp of warm water until smooth and creamy. Beat in the sugar gradually on a low setting. Scrape sides of bowl as needed.
Mixture will be very thick.After all the sugar is incorporated, add 1-2 more tbsp. of warm water and beat at medium/medium-high speed for 1-2 more minutes. Adding more warm water will continue to thin the frosting consistency and bring down the sweetness even more. Add as much as you like to get the appropriate flavor and consistency. Be careful because a little goes a long way.
The frosting can also be made several days in advance and stored in an airtight container in the refrigerator. Bring to room temperature, then mix well before using. Leftovers should be refrigerated.