For giggles, I ran splint across maplelib.
You might be interested to do the same, just to see the code with 'fresh eyes'.
Sadly splint doesn't seem to handle asm properly :-(
There are a couple of things you might want to think about; nothing to worry about, everything I saw were only warnings and appeared to be okay. One thing I'd comment on is using 1UL to get an unsigned 32 bit value. I think both 1U and (unit32)1 work okay and are a bit clearer (to me, anyway).