Hi 2086,
OK, glad the ROI sizes ended up be consistent with expectations (I had just used the Clusterize plug-in to check; 3dClusterize would behave similarly in reporting cluster sizes, too).
Re. your second question: I *think* the reason you get multiple ROIs might be because you are thresholding at 0, while your dset can (and likely does) have negative values. By thresholding at 0, you are likely making separate islands of 'positive' values, and then each of those gets treated as an ROI-- a peak is found there, and 3dROIMaker is finding the top N connected values in each of those islands.
I assume that you might want to set the threshold to a large negative number, and then you will only get the N top connected voxels in the whole dataset. (This assumes that your mask is also one single blob, and not parcellating your dset undesirably.)
-pt