se o banco de dados for InnoDB, você não precisa fazer junções na exclusão. só
DELETE FROM spawnlist WHERE spawnlist.type = "monster";
pode ser usado para excluir todos os registros vinculados a chaves estrangeiras em outras tabelas, para fazer isso você deve primeiro vincular suas tabelas em tempo de design.
CREATE TABLE IF NOT EXIST spawnlist (
npc_templateid VARCHAR(20) NOT NULL PRIMARY KEY
)ENGINE=InnoDB;
CREATE TABLE IF NOT EXIST npc (
idTemplate VARCHAR(20) NOT NULL,
FOREIGN KEY (idTemplate) REFERENCES spawnlist(npc_templateid) ON DELETE CASCADE
)ENGINE=InnoDB;
se você usa MyISAM você pode deletar registros entrando assim
DELETE a,b
FROM `spawnlist` a
JOIN `npc` b
ON a.`npc_templateid` = b.`idTemplate`
WHERE a.`type` = 'monster';
na primeira linha eu inicializei as duas tabelas temporárias para deletar o registro, na segunda linha eu atribuí a tabela de existência a ambos a e b, mas aqui eu vinculei as duas tabelas com a palavra-chave de junção e combinei a chave primária e estrangeira para ambas as tabelas que fazem link, na última linha filtrou o registro por campo para deletar.