PIC32: "16-bit code" doesn't work (many errors "unknown opcode")
Finally, I found the reason and fixed it, with help of user andersm from microchip forums, here's my thread.

Shortly: I use RTOS TNKernel PIC32 port, and there is macro for declaring system ISRs. Too bad that compiler didn't point at the place where this macro is included.

Fixed by adding attribute nomips16. Bugreport is sent to TNKernel PIC32 port author.