Can you help me not "shoot in the sky" with initial MIDI assignments? Attach ZED to AZ Plug-in (you can keep it attached to whatever plug-in you use at the same time, but do not forget to remove my plug-in after the test). Open plug-ins window and look at "Last MIDI Event" (topmost part). Press some button (better each type of buttons, so transport, shift, etc) and keeping it pressed remember what was there. Release the button and see if the information is changed (and how). What I want to test by that: (1) which MIDI channel is used (2) either all buttons send separate MIDI event when released and which one (Note On or Note Off, with which value).
And some questions about your proposal:
1) do you want Shift/Inc works like a Shift on computer or as CapsLock (in case it send release event, otherwise it can be CapsLock only). It is also possible to have both: in case some other control is touched when Shift is pressed, it will work as Shift, if it was pressed and released alone it can work as CapsLock
2) How to distribute encoders and buttons? There are 16+4 faders (strips) but only 12 encoders and 8 "Mute"s.
3) What you mean by shifting tracks? Moving "current" track or shift the controller block? I assume by "Shift"+Arrow you want do the same with buses.
I think that is sufficient for the first preset version.
Anything can be used for additional "mods" and the number of such mods is not limited. Even slider can be used as "X position switch", where X is from 2 up to 127 (but I do not thing more than 3-4 is practical). So, for example, in lowest part we have "Console Bank 1", before the middle "Console Bank 2" and in the upper part we have 2 banks of plug-in controls. Or "Inc"+"Mute Y" switch to "Bank Y" (but that combination looks good for Solo).