Is it possible to modify recastnavmesh to support multiple Navareas in the same polygon?

I’m going to implement a new feature with recast navmesh. I want polygons in recast navmesh to store areaids of all the navareas that cover it. So once my character steps on a ploygon I can get all the navareas it steps on.
I did some research on recast navmesh. Currently recast navmesh store navareaid in an unsigned char “areaAndtype”, packed with 2 bits polytype. If two navareas overlap, only one will be choosen(sorted by cost).

I’m going to change this type to unsigned int, so there would be 30 bits to store 30 areaids at the same time. I think I also need to update the procedure of registering navareas and caculate all the intersections of navareas.

It will take me some time to implement and debug. So I wish to get some suggestions before I start to do this. I want to know if there are some potential risks. Thanks a lot!

one more question:

316234-snipaste4-07.jpg

Why serialized this areaclass-id mapping. I tryed to shrink the max area num to 30 and it crashes. Because the id is serialized and much bigger than 30.