The third, and most practical, method of making monsters is this one.
However, i don't think i've ever seen it used. The difference in time
is negligible, but it requires more knowledge of what you are doing.
Notice that it involves changes in 2 places.

/* first we have a room */
inherit "room/room";
reset(arg) {
  object monster;
/* reset of the normal junk; short_desc, long_desc, set_light, etc */
/* at the end, it looks like this: */
  monster = "/players/joebob/monsterthingo"->make_monster();
  move_object(monster, this_object());
}
/* stay with me here. the following would be players/joebob/monsterthingo */
make_monster() {
  object monster;
  monster = clone_object("/obj/monster");
  /* inert normal configuration here */
  /* just like in monster 2. at the end, we have the fun */
  return monster; /* return the configured monster */
}
/* please read monster3.exp now ;) */
