There are two separate notations begin defined here.
This defines the "M[x]" notation where x is an address - addresses are 8 bytes (octabytes):
"The cells of memory are called M, M, ..., M[264 - 1]; thus if x is any octabyte, M[x] is a byte of memory"
M[x] is shorthand for M1[x] - it refers to the single byte at address x. Similarly M2[x] refers to 2 bytes associated with address x. And M4[x] is 4 bytes, M8[x] is 8 bytes of memory.
It gets interesting with M2[x], M4[x], M8[x] because "Mt[x]" is an aligned reference to memory. So M4[x] is not 4 bytes starting at address x. Rather it is the 4 bytes at 4-byte-aligned x.
Suppose addresses 1000-1007 contain hex: 01 23 45 67 89 ab cd ef. Then M4 is not 45 67 89 ab. Instead it is 01 23 45 67 because 1002 aligned to 4 bytes is address 1000. So M4 = M4 = M4 = M4.
The second notation is "$x" where x is a register number. MMIX has 256 registers numbered 0-255. And each register is 64-bits wide. So any register number fits in one byte. And $x - the content of register x - is one octabyte.
"The general-purpose registers are called $0, $1, ..., $255; thus if x is any byte, $x is an octabyte"
You just need to realize "x" in the two notations mean different things - the confusion may come from them being defined next to each other.