Input-to-key mapping could work, I will try it in a live production, however 20+ titles might require to have a printed list of keystrokes vs. inputs laying around.
Another approach would be to make input windows smaller so that more of them can be displayed at the same time on more than one row. Also output windows can be made smaller to give more space for input windows.
I few more ideas from my perspective regarding the construction of input or shot:
1. shot overlays are not limited to size, position, count. meaning that from shot editor you can add/remove as many overlays as you want to, change the size and position of them. in vMix case the overlay construction is done using three different paths (which is fine, but not convenient for first time user): 1)overlay button; 2)1 and 2 buttons; 3) Multiview tab. At the end number of overlays is limited, overlay position and size is somewhat limited (for example using multiview tab I can only select the pre-defined positions, and not create my own, for example, when two video inputs are partially one over other. I can probably manage that using the overlay button, but this can only be done once). In this case the great vMix option to use existing shot as an overlay for new shots comes in handy, allowing to create base shots for cameras (removing black margins, doing some color adjustment, adding logotype, etc) and then using them during the creation of the actual shots to be used during live production - cam+subtitle, multiviews and so on.
2. the first layer on shot is just another overlay, therefore the shot is not a dedicated camera/color/something shot, but rather a common shot that can have any type of overlays. For example, at this point in vMix there is no way to add an underlay camera. To create 20 subtitles shots with camera and subtitle, I have to first create 20 subtitles, and after that 20 color+camera+subtitle shots. Making first layer on shot just another overlay can be simply added or removed would solve this problem. Making possible to change the priority of overlays of shot would make this process even more user friendly (to bring certain shot to frontor send to back).
3. possibility to choose if this shot is displayed static or dynamic. Static would work for conferences and discussions when there are 50 participants that each require a different cam+subtitle and director has to see all of them on one screen to quickly find the right one. Dynamic would work for cases with 6 live camera inputs to choose the best one based on preview. And it is good to hear that there are already some things done to make projects with large number of inputs perform faster.
4. you can decrease/increase the shot size, leaving the shot title intact. to deal with large number of shots and quickly find the right one
5. you can copy/paste shots, hence making easy to create another subtitle based on previous shot. if you have done some hard work creating and polishing a base shot (cropping the camera to get rid of black margins, adjusting colors and so on, this might come in handy), however, this can also be solved using 1.
6. the sound is just another overlay on shot, hence you can prepare shots with any number of sound inputs, different shots with different sound inputs
7. you can change the order of the shots by dragging and dropping. this comes in handy when having a large number of shots to sort them according to event scenario
Hope, some of this might become useful,