update compression code again

(and fix a type mismatch that was fixed in exhal a long time ago)