for #3, you could use the below:
Use this event to spawn the creature whenever the above dies, and the above method on the dead creature to spawn a new creature.
CREATURE_EVENT_ON_DIED = 4, // (event, creature, killer)
:SpawnCreature(entry, x, y, z, o[, spawnType, despawnDelay]) - Spawns a creature to location that despawns after given time (0 for infinite). Returns the creature or nil
Use this event to register the MoveTo method whenever the new creature spawns.
CREATURE_EVENT_ON_SPAWN = 5, // (event, creature)
:MoveTo(id, x, y, z[, genPath]) - Moves to point. id is sent to WP reach hook. genPath defaults to true