The way I get around this is to work out what combination of Controller events result in the equivalent RPN events.
CC 6 Data Entry Most Significant Bit(MSB)
CC 32 Data Entry Least Significant Bit(MSB)
CC 100 Registered Parameter Number LSB (RPN)
CC 101 Registered Parameter Number MSB (RPN)
For instance, if I want to enter a Yamaha XG pitch pitch bend range (which is done via a RPN 0 event), I use the following
(do
(int pitchbendrange 2)
(getInt pitchbendrange "Please enter pitchbend Range" 0 24)
(insert Now 0 CONTROL 100 0)
(insert (+= Now 1) 0 CONTROL 101 0)
(insert (+= Now 2) 0 CONTROL 6 pitchbendrange)
)
I also use a specially crafted Studioware panel that does the same thing but without needing CAL
Hope that helps.