Yeah, I do.
First, you have to repoint the healing spots table that's located at 0859F53C. End is at 0859F5EC. (so select this area in a hex editor, paste it somewhere else and save the offset, also make sure you've got 8 bytes of free space before the place)
It has 21(0x15) entries. The struct is as follows:
Warp:
The limiter is at 08122C88, so change it to the number of new entries.
Another limiters is at 08122CC2. This time, change it to the number of your entries + 1, because of the way it works.
Now, go to 0859F534 select 8 bytes and copy them before where you copied healing spots and repoint it.
Okay, we're halfway through. The actual flying position table or rather table of fly locations is located at 085A1E3C.
Now all entries in this table are in NAME value order, so it starts with Littleroot, then Oldale, etc. The table is enumerated like this:
00 map bank .byte
01 map number .byte
02 healing spot ID .byte
Healing spot ID is an ID from healing spot table. Also make sure you count from 0, so first entry has ID 0, second has ID 1, etc.
Now, there's only one thing left, a function at 0x08123D58 which I named 'did player visit a map'. As an argument, it takes map name and returns:
1 = not checked, can't fly there 2 = visited, can fly there
3 = didn't visit, can't fly there
4 = visited battle frontier
And there's not much you can do here. You have to change the routine so it returns 2 or 3 on the map you want to be able to fly.
Also, this just enables you to fly to custom map, it won't change anything in fly-map display.
I hope you understood everything.