I only just figured this out, so no idea how to play with animation speeds or exact understanding of everything. But you can relate the animations to tiles by going to the QueueAnimTiles_TileName part in tileset_anim.c file.
For example for the general tileset flower animation you see this:
The last part TILE_OFFSET_4BPP(508) refers to the starting tileset number, which you can see in porymap (see screenshot below). However porymap displays it in hex, so you need to take the number you see in porymap (0x1FC) and convert it to decimal to get to the 508 you see for the tileset flower animation.
The 0x80 part refers to the number of the tiles following that tile that are animated, I think... In this case the flower tiles are 4 8x8 tiles that are animated. 0x80 in hex is 128. So for each tile that you want to animate you should count 32, and then convert it to hex to get the correct value.
Using this I was able to create my own animated tile animation for water rocks:
I think I'll create a tutorial on tile insertion for disassembly. General tile insertion, but also animation editing, and the difference between event object animations (eg. grass tiles, rock smashes) vs. tileset animations (what you see above).
EDIT: I've created the first version of this tutorial here. EDIT 2: The tutorial is now updated to show how tile animation works. In the tutorial we'll be creating a little zigzagoon in a tree animation.