Sí, efectivamente, hay que utilizar scoreboards para la forma más eficiente.
Primero tienes que crear un objetivo con este contenido:/scoreboard objectives add <nombre del objetivo> stat.deaths
Después, si quieres probarlo y ver qué tal funciona (no es necesario), utiliza este comando:/scoreboard objectives setdisplay sidebar <nombre del objetivo>
Ahora, prueba a matarte. Puedes usar esto:/kill @p
Si está todo correcto, verás que el contador ha subido.
Ahora lo que necesitarás es ver cuándo tiene los valores uno, dos, tres... hasta el límite de vidas. Tienes que conectar los comandos que te voy a poner a continuación a un reloj.
testfor @p[score_<nombre del objetivo>=1,score_<nombre del objetivo>_min=1]
Al lado de cada uno de los comandos, debes situar un comparador cuya entrada esté tocando el bloque de comandos. Esa será la respuesta.
Ahí será donde pongas el spawnpoint al sitio concreto que quieres.
También puedes poner otros comandos que digan el número de vidas que le quedan al jugador y que, al alcanzar el límite de vidas, diga "Fin del Juego" (por ejemplo).
Esto último lo puedes hacer con muchos comandos distintos. En este caso, uno que creo que quedaría bien, sería el /tellraw:/tellraw @p {"text":"","extra":[{"text":"Vida número 5","color":"dark_green","bold":"true"},{"text":" - ","color":"white"},{"text":"Te quedan 3 vidas","color":"dark_gray"}]}
/tellraw @p {"text":"","extra":[{"text":"Vida número 8","color":"dark_green","bold":"true"},{"text":" - ","color":"white"},{"text":"FIN DEL JUEGO","color":"gold","bold":"true","underlined":"true"}]}
Esto sería todo lo necesario para que funcionase. Una vez que hayas hecho algunas pruebas y visto que funciona bien, puedes quitar el scoreboard de la lista lateral:/scoreboard objectives setdisplay list <nombre del objetivo>
Espero que te haya servido para resolver tu problema. Si tienes alguna duda o pregunta, házmela saber.