With this article posted pokebeach. I decided to try to see If I could modify and even add new formes to the game.
The data chart in the article can be found in a/0/1/6, the stats files. The files in the narc match up to each Pokemon's national pokedex number. after 649 are the stats for formes. I am not sure what file 668 is, I added my two new files as file 669 and 670. For the Pokemon you want to add a forme too, open the file that matches there pokedex number and edit these offsets.
offset 0x1C(2 byte) = Nobis
offset 0x1E(1 byte) = Sprite
offset 0x20(1 byte) = Formes
Make the Nobis equal the file in a/0/1/6 you want its stats to be, leave it at 0 if the stats do not change.
The Sprite is the number for what sprite to use. You can only use sprites that come after Genesect. using 1 will use the first sprite after Genesect. The sprite files are in a/0/0/4. Each Pokemon uses 20 files for their set of sprites. After Genesect's last forme sprite, there is some other data there and a long list of palette files. Not 100% sure what these are for, might be used for Arceus and all his alternate forme's colors. I added 15 dummy files to pad it to 14300 files so it would take up the space of 3 sprites(60 files) and make my added sprites be align to the 20 files per sprite rule. For this example I copied Reshiram and Zekrom's sprites. You also need to add sprites for the part icon. These files can be found in a/0/0/7. The first file is a pal file, followed by 2 files per sprite. Since there is 60 files (3 sprites) of dummy data after Genesect's last forme sprite, we must also add 6 dummy files (3 sprites) to the party icon file before adding our own. For this example I also copied Reshiram and Zekrom's sprites.
Forme is the number of formes a pokemon has. If the pokemon has no extra formes this number is 0. If the Pokemon has 1 or more alternate formes then the number is the number for extra formes plus the base form. Shaymin has this value as 2 for it's Land and Sky forme. Pokemon who have a 1 here only have 1 forme in the current game and extra formes in future games. If a Pokemon has more that 1 extra forme, when it is in the first alternate forme it uses the data for the Nobis and Sprite Bytes. The next forme will use the data after those. Example would be Nobis of 669 and Sprite of 63 will cause the first alternate forme to use Nobis 669 and Sprite 63, the second alternate forme will use Nobis 670 and Sprite 64.
I do not have any idea how to change formes in game with pokemon who have new forme, but you can have them appear in the wild in the forme and it will keep the forme once captured.
Here is a video showing the results.