MIMO spatial multiplexing is an essential feature to increase the communication data rates in current and future cellular systems. Currently, the ns-3 lte module leverages an abstraction model for 2x2 MIMO with spatial multiplexing of 2 streams; while mmwave and nr modules were lacking the spatial multiplexing option until this work, since the ns-3 models were not supporting the usage of multiple antennas for spatial multiplexing and an abstraction model such as the one used in the lte module is not suitable for the mmWave frequencies. In this paper, we propose, implement and evaluate 2-stream MIMO spatial multiplexing models for ns-3 and the nr module. The proposed extension for the ns-3 supports multiple antennas for MIMO spatial multiplexing and can be used by any ns-3 module that is compatible with the ns-3 antenna array based models, such as nr and mmwave modules. We leverage this ns-3 extension to model 2-stream MIMO by exploiting dual-polarized antennas and their orthogonality under line-of-sight conditions, as it happens at high frequency bands, to send the two data streams. The proposed model does not rely on abstraction, as the MIMO model in the ns-3 lte module, and can thus model more realistically the propagation differences of the two streams, correlation, inter-stream interference, and allows design and evaluation of the rank adaptation algorithms. Additionally, we propose and evaluate an adaptive rank adaptation scheme and compare it with a fixed scheme. The developed MIMO spatial multiplexing models for the ns-3 simulator and the nr module are openly available.