The first implementation of TTL value wrapper has the following serialisation order: first user value, then last modification timestamp.
This was planned for potential optimisation where we could peek at the last bytes of last element of list to check whether the whole list expired or not. After careful consideration, it is not the frequent case and the list is handled per entry mostly.
Having the fixed part (the timestamp) at the beginning looks more promising in future as we can skip looking into the rest of bytes if needed when working directly with serialised value.
This issue suggests to change the serialisation order.