When pistons extend or retract, their bases have tile entities, even though those are not needed. I was told that the extension progress is saved in a float
, but this is not required, because there are a limited amount of ticks that an extension or retraction lasts (to my understanding at most three), so it could be saved in a block state. This would improve performance.
(split off of MC-159902)
Related issues
clones
relates to
Comments

This one might be needed, because there is a special renderer envolved to animate the block movement smoothly.
This still happens in 20w27a?

Affects 1.20.5

Both moving piston and moving blocks are needs to use the tile entity special renderer to rendering the smoothly block movement animation, so this is not a bug. If this got "fixed", the piston movement action will become lagging.
The amount of ticks for extension maxes at 2gt (the extra +1gt comes from b36 converting to a normal block is outisde of the piston phase)
Pistons having block entities causes unneeded lag, as loading and unloading block entities is very very laggy