A couple of things.
First, software based flow control can't use readyfordata nor dataavailable. Even for masters that do support control, the master does not have access to the readyfordata or dataavailable signals -- it's all managed by the fabric.
The master -- in the case, NIOS -- will always stall waiting for the slave.
In order to have software based flow control, the slave needs to have a register that can always be read and whose contents say if the "data" registers can be written to or read from without delay.
Which brings us to the reason why -MM flow control isn't so great in general: in slaves with multiple read/write registers, dataavailabe/readyfordata quickly become useless.
For example, if your slave has a status register that can always be read, dataavailable is always asserted.
-MM flow control is only useful for slave interfaced dedicated to streaming. Having status/control registers in the same interface quickly makes -MM flow control useless.
And if one is going to add a dedicated interface for streaming, it's better if it's a -ST interface.