Simplest Machine Model Accepting $L = \{ww^Rw\;|\; w\in \Sigma^*\}$
You don't need nondeterminism or multiple heads.  Even a 2DPDA can accept this language:  push 2 counters per symbol while scanning from left endmarker to right; then pop 3 per symbol while scanning left until stack empty. At this point you're at the boundary between first w and w^R.  Scan left, pushing onto stack until left endmarker.  Now stack has w^R.  Play the same game again with the counters, then move right comparing stack contents to symbols read.
If success, then first 2/3 of string is w w^R.  A similar trick can be used to ensure last 2/3 of string is w^R w.  And of course, precede all of this with a single scan to make sure input is of length == 0 (mod 3).

There is an intro to 2DPDA's in my book, A Second Course in Formal Languages and Automata Theory.