With the syntax for MPI::Isend as
MPI::Request MPI::Comm::Isend(const void *buf, int count, const MPI::Datatype& datatype,
This issue and a number of workarounds (with code) are discussed on https://github.com/jeffhammond/BigMPI. In particular, this project demonstrates how to send more than INT_MAX elements via user-defined datatypes.