There is no one way of defining the size of the map, or it's topology. It depends on the distribution of the data for which you are building the feature map.
A topology that is too small for a given problem will prevent the map from representing the data accurately, since you'll have too much information loss, ie, data that should be clustered separately will map to the same neuron.
If you have as many neurons as data examples, there'll be little or no information reduction, no clustering, since in the worst case every data example will map to a different neuron.
You always have to experiment with the size, since as I said before, it depends on the distribution of your data, which you typically don't know.
The choice of topology is more subtle, but follows the same principle; it must reflect the intrinsic characteristics of the domain you are trying to model.