Don't make the user think. The user will spend a limited time in the app so:
- Give him what he is looking for without overwhelming him
- Catch his attention with an easy and quick to understand list
There is no limit as this depends on the case, but look at your scenario and think: if you were going to spend only a few seconds to understand all that information would all the choices you are displaying be too many?
If you need to make the user choose between 20 different sets of options then try to make the decision in steps. For example first a selection between a reduced number of options and in a second step a second selection of a more specific option (from the previous selected set).