mybmap->flags = 1<<15 | 1<<27;

This deletes important flags. Correct is:

mybmap->flags |= 1<<15;
mybmap->flags &= ~(1<<27);

Don't use '=' for flags. It's either '|=' for setting or '&=' for resetting a flag.