I figured out the luadec crash: It's because of the lack of local information.
I coded around it by using _TEMP_ for all local variable names. At least that got me able to decompile everything I've tried it on so far, but make no mistake, it's a kluge (for example, if there are 5 locals, all 5 are named _TEMP_ - not good!).
Email me if you want a copy of the modified source (no place to put it online...).
I will work on a proper solution to the local variable issue next. I just have to do some heavy code reading to understand luadec parse structure...